#ifndef _EXPRNODE_H_
#define _EXPRNODE_H_

#include <string>

using namespace std;

#include "AST.h"

class ExprNode : public AST {
public:
    const int tINVALID = 0;
    const int tINTEGER = 1;
    const int tVECTOR = 2;

protected:
    int eval_type;
public:
    int get_eval_type() {
        return eval_type;
    }
    ExprNode(Token *payload): AST(payload) { }
    string to_string() {
        if (eval_type != tINVALID) {
            return this->to_string() + "<type=" +
                (eval_type == tINTEGER ? "tINTEGER" : "tVECTOR") + ">";
        }
        return this->to_string();
    }
};

#endif
